home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / Suntar 1.3.2 / PB_sync.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-10  |  3.9 KB  |  104 lines  |  [TEXT/KAHL]

  1. #ifndef THINK_C_5
  2.  
  3. /* to avoid the glue is faster and typically generates shorter code (the glue
  4. itself is short but there are many of them, plus an entry in the jump table,
  5. and the calling sequence, passing one extra parameter, is repeated a lot of times) */
  6.  
  7.  
  8. /* from MPW: devices.h */
  9.  
  10. pascal OSErr PBControlSync(ParmBlkPtr paramBlock)
  11.     = {0x205F,0xA004,0x3E80};
  12.     /* That is:
  13.     MOVE.L  (SP)+,A0
  14.     _Control
  15.     MOVE.W    D0,(SP)
  16.     i.e., the caller pushes the argument, the first inline word
  17.     pops it, then the third inline word pushes the result code and
  18.     the caller pops it. And this absurdity is still much more efficient
  19.     than using the standard solution, the glue function PBControl.
  20.     An improvement would be to declare all them as C functions, but
  21.     then this header file could be nonportable among different compilers
  22.     or different releases of the same compiler.
  23.     MPW 3.2 solves the problem by a pragma which lets you declare that
  24.     a function accepts arguments in registers and returns its value in a
  25.     register, but that's a new feature
  26.     */
  27. pascal OSErr PBStatusSync(ParmBlkPtr paramBlock)
  28.     = {0x205F,0xA005,0x3E80};
  29.  
  30. /* from MPW: files.h */
  31.  
  32. pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  33.     = {0x205F,0xA000,0x3E80};
  34. pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  35.     = {0x205F,0xA001,0x3E80};
  36. pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  37.     = {0x205F,0xA002,0x3E80};
  38. pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  39.     = {0x205F,0xA003,0x3E80};
  40. pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock)
  41.     = {0x205F,0xA007,0x3E80};
  42. pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock)
  43.     = {0x205F,0xA014,0x3E80};
  44. pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock)
  45.     = {0x205F,0xA015,0x3E80};
  46. pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock)
  47.     = {0x205F,0xA013,0x3E80};
  48. pascal OSErr PBCreateSync(ParmBlkPtr paramBlock)
  49.     = {0x205F,0xA008,0x3E80};
  50. pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock)
  51.     = {0x205F,0xA009,0x3E80};
  52. pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock)
  53.     = {0x205F,0x701A,0xA060,0x3E80};
  54. pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock)
  55.     = {0x205F,0xA00A,0x3E80};
  56. pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock)
  57.     = {0x205F,0xA00C,0x3E80};
  58. pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock)
  59.     = {0x205F,0xA00D,0x3E80};
  60. pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock)
  61.     = {0x205F,0xA010,0x3E80};
  62. pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock)
  63.     = {0x205F,0xA011,0x3E80};
  64. pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock)
  65.     = {0x205F,0xA012,0x3E80};
  66. pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock)
  67.     = {0x205F,0xA045,0x3E80};
  68. pascal OSErr PBOpenWDSync(WDPBPtr paramBlock)
  69.     = {0x205F,0x7001,0xA260,0x3E80};
  70. pascal OSErr PBCloseWDSync(WDPBPtr paramBlock)
  71.     = {0x205F,0x7002,0xA260,0x3E80};
  72. pascal OSErr PBHSetVolSync(WDPBPtr paramBlock)
  73.     = {0x205F,0xA215,0x3E80};
  74. pascal OSErr PBHGetVolSync(WDPBPtr paramBlock)
  75.     = {0x205F,0xA214,0x3E80};
  76. pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock)
  77.     = {0x205F,0x7006,0xA260,0x3E80};
  78. pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock)
  79.     = {0x205F,0x7007,0xA260,0x3E80};
  80. pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock)
  81.     = {0x205F,0x7008,0xA260,0x3E80};
  82. pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock)
  83.     = {0x205F,0x7009,0xA260,0x3E80};
  84. pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock)
  85.     = {0x205F,0x700A,0xA260,0x3E80};
  86. pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock)
  87.     = {0x205F,0xA207,0x3E80};
  88. pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock)
  89.     = {0x205F,0xA200,0x3E80};
  90. pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock)
  91.     = {0x205F,0xA20A,0x3E80};
  92. pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock)
  93.     = {0x205F,0x701A,0xA260,0x3E80};
  94. pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock)
  95.     = {0x205F,0xA208,0x3E80};
  96. pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock)
  97.     = {0x205F,0xA209,0x3E80};
  98. pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock)
  99.     = {0x205F,0xA20C,0x3E80};
  100. pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock)
  101.     = {0x205F,0xA20D,0x3E80};
  102.  
  103. #endif
  104.